<?php

namespace maotool\util;

use maotool\file\DirUtil;

class BuildUtil
{

    /**
     * 文件监控
     * @param $path
     * @param $func
     * @param array $option
     * @return void
     */
    public static function watch($path, $func, $option = [
        "IGNORE_INITIAL" => true, // 初次执行
        "EVENTS" => "all", // 变更事件
        "DELAY" => 1,
    ])
    {
        if ($option["IGNORE_INITIAL"]) {
            $originalDirMd5 = md5("IGNORE_INITIAL");
        } else {
            $originalDirMd5 = DirUtil::md5($path);
        }
        while (true) {
            $dirMd5 = DirUtil::md5($path);
            if ($originalDirMd5 !== $dirMd5) {
                $originalDirMd5 = $dirMd5;
                $func();
            }
            sleep($option["DELAY"]);
        }
    }

}